/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import clases.TipoReporte;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;


/**
 *
 * @author carlos
 */
public class Reporte extends Root {
    //Identificador asociado al reporte

    int id;
    //Número de autenticaciónd el reporte
    int numAutenticacion;
    //Tipo de reporte
    TipoReporte tipo;

    //Getters
    public int getId() {
        return id;
    }

    public int getNumAutenticacion() {
        return numAutenticacion;
    }

    public TipoReporte getTipo() {
        return this.tipo;
    }

    //Setters
    public void setId(int a) {
        id = a;
    }

    public void setNumAutenticacion() {
        numAutenticacion = (int) Math.floor(Math.random() * (1000000000 - 2000000000 + 1) + 2000000000);
    }

    public void setTipo(TipoReporte a) {
        this.tipo = a;
    }

    static class HeaderFooter extends PdfPageEventHelper {
        
        int id;
        int validacion;

        public HeaderFooter(int a,int b) {
            super();
            id = a;
            validacion = b;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public int getValidacion() {
            return validacion;
        }

        public void setValidacion(int validacion) {
            this.validacion = validacion;
        }
        
        public void onEndPage(PdfWriter writer, Document document) {
            Rectangle rect = writer.getBoxSize("art");
            //Cabecera
            //ColumnText.showTextAligned(writer.getDirectContent(),
            //        Element.ALIGN_LEFT, new Phrase("Reporte Nro." + this.getId() + "      Programa de igualdad de oportunidades"),
            //        rect.getLeft(), rect.getTop(), 0);
            //Pie
            ColumnText.showTextAligned(writer.getDirectContent(),
                    Element.ALIGN_CENTER, new Phrase(String.format("Pagina %d                "+ this.getValidacion(), writer.getPageNumber())),
                    (rect.getLeft() + rect.getRight()) / 2, rect.getBottom() - 18, 0);
        }
    }
}
